/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface MTRScenesClusterAttributeValuePair : NSObject
@property (strong, nonatomic) NSNumber * _Nullable attributeId;
@property (strong, nonatomic) NSArray * _Nonnull attributeValue;
- (instancetype)init;

@end

@interface MTRScenesClusterExtensionFieldSet : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull clusterId;
@property (strong, nonatomic) NSArray * _Nonnull attributeValueList;
- (instancetype)init;

@end

@interface MTRDescriptorClusterDeviceType : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull type;
@property (strong, nonatomic) NSNumber * _Nonnull revision;
- (instancetype)init;

@end

@interface MTRBindingClusterTargetStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nullable node;
@property (strong, nonatomic) NSNumber * _Nullable group;
@property (strong, nonatomic) NSNumber * _Nullable endpoint;
@property (strong, nonatomic) NSNumber * _Nullable cluster;
@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
- (instancetype)init;

@end

@interface MTRAccessControlClusterTarget : NSObject
@property (strong, nonatomic) NSNumber * _Nullable cluster;
@property (strong, nonatomic) NSNumber * _Nullable endpoint;
@property (strong, nonatomic) NSNumber * _Nullable deviceType;
- (instancetype)init;

@end

@interface MTRAccessControlClusterAccessControlEntry : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull privilege;
@property (strong, nonatomic) NSNumber * _Nonnull authMode;
@property (strong, nonatomic) NSArray * _Nullable subjects;
@property (strong, nonatomic) NSArray * _Nullable targets;
@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
- (instancetype)init;

@end

@interface MTRAccessControlClusterExtensionEntry : NSObject
@property (strong, nonatomic) NSData * _Nonnull data;
@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
- (instancetype)init;

@end

@interface MTRAccessControlClusterAccessControlEntryChangedEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nullable adminNodeID;
@property (strong, nonatomic) NSNumber * _Nullable adminPasscodeID;
@property (strong, nonatomic) NSNumber * _Nonnull changeType;
@property (strong, nonatomic) MTRAccessControlClusterAccessControlEntry * _Nullable latestValue;
@property (strong, nonatomic) NSNumber * _Nonnull adminFabricIndex;
@end

@interface MTRAccessControlClusterAccessControlExtensionChangedEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nullable adminNodeID;
@property (strong, nonatomic) NSNumber * _Nullable adminPasscodeID;
@property (strong, nonatomic) NSNumber * _Nonnull changeType;
@property (strong, nonatomic) MTRAccessControlClusterExtensionEntry * _Nullable latestValue;
@property (strong, nonatomic) NSNumber * _Nonnull adminFabricIndex;
@end

@interface MTRBridgedActionsClusterActionStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull actionID;
@property (strong, nonatomic) NSString * _Nonnull name;
@property (strong, nonatomic) NSNumber * _Nonnull type;
@property (strong, nonatomic) NSNumber * _Nonnull endpointListID;
@property (strong, nonatomic) NSNumber * _Nonnull supportedCommands;
@property (strong, nonatomic) NSNumber * _Nonnull status;
- (instancetype)init;

@end

@interface MTRBridgedActionsClusterEndpointListStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull endpointListID;
@property (strong, nonatomic) NSString * _Nonnull name;
@property (strong, nonatomic) NSNumber * _Nonnull type;
@property (strong, nonatomic) NSArray * _Nonnull endpoints;
- (instancetype)init;

@end

@interface MTRBridgedActionsClusterStateChangedEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull actionID;
@property (strong, nonatomic) NSNumber * _Nonnull invokeID;
@property (strong, nonatomic, getter=getNewState) NSNumber * _Nonnull newState;
@end

@interface MTRBridgedActionsClusterActionFailedEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull actionID;
@property (strong, nonatomic) NSNumber * _Nonnull invokeID;
@property (strong, nonatomic, getter=getNewState) NSNumber * _Nonnull newState;
@property (strong, nonatomic) NSNumber * _Nonnull error;
@end

@interface MTRBasicClusterCapabilityMinimaStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull caseSessionsPerFabric;
@property (strong, nonatomic) NSNumber * _Nonnull subscriptionsPerFabric;
- (instancetype)init;

@end

@interface MTRBasicClusterStartUpEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull softwareVersion;
@end

@interface MTRBasicClusterShutDownEvent : NSObject
@end

@interface MTRBasicClusterLeaveEvent : NSObject
@end

@interface MTRBasicClusterReachableChangedEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull reachableNewValue;
@end

@interface MTROtaSoftwareUpdateRequestorClusterProviderLocation : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull providerNodeID;
@property (strong, nonatomic) NSNumber * _Nonnull endpoint;
@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
- (instancetype)init;

@end

@interface MTROtaSoftwareUpdateRequestorClusterStateTransitionEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull previousState;
@property (strong, nonatomic, getter=getNewState) NSNumber * _Nonnull newState;
@property (strong, nonatomic) NSNumber * _Nonnull reason;
@property (strong, nonatomic) NSNumber * _Nullable targetSoftwareVersion;
@end

@interface MTROtaSoftwareUpdateRequestorClusterVersionAppliedEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull softwareVersion;
@property (strong, nonatomic) NSNumber * _Nonnull productID;
@end

@interface MTROtaSoftwareUpdateRequestorClusterDownloadErrorEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull softwareVersion;
@property (strong, nonatomic) NSNumber * _Nonnull bytesDownloaded;
@property (strong, nonatomic) NSNumber * _Nullable progressPercent;
@property (strong, nonatomic) NSNumber * _Nullable platformCode;
@end

@interface MTRPowerSourceClusterBatChargeFaultChangeType : NSObject
@property (strong, nonatomic) NSArray * _Nonnull current;
@property (strong, nonatomic) NSArray * _Nonnull previous;
- (instancetype)init;

@end

@interface MTRPowerSourceClusterBatFaultChangeType : NSObject
@property (strong, nonatomic) NSArray * _Nonnull current;
@property (strong, nonatomic) NSArray * _Nonnull previous;
- (instancetype)init;

@end

@interface MTRPowerSourceClusterWiredFaultChangeType : NSObject
@property (strong, nonatomic) NSArray * _Nonnull current;
@property (strong, nonatomic) NSArray * _Nonnull previous;
- (instancetype)init;

@end

@interface MTRGeneralCommissioningClusterBasicCommissioningInfo : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull failSafeExpiryLengthSeconds;
@property (strong, nonatomic) NSNumber * _Nonnull maxCumulativeFailsafeSeconds;
- (instancetype)init;

@end

@interface MTRNetworkCommissioningClusterNetworkInfo : NSObject
@property (strong, nonatomic) NSData * _Nonnull networkID;
@property (strong, nonatomic) NSNumber * _Nonnull connected;
- (instancetype)init;

@end

@interface MTRNetworkCommissioningClusterThreadInterfaceScanResult : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull panId;
@property (strong, nonatomic) NSNumber * _Nonnull extendedPanId;
@property (strong, nonatomic) NSString * _Nonnull networkName;
@property (strong, nonatomic) NSNumber * _Nonnull channel;
@property (strong, nonatomic) NSNumber * _Nonnull version;
@property (strong, nonatomic) NSData * _Nonnull extendedAddress;
@property (strong, nonatomic) NSNumber * _Nonnull rssi;
@property (strong, nonatomic) NSNumber * _Nonnull lqi;
- (instancetype)init;

@end

@interface MTRNetworkCommissioningClusterWiFiInterfaceScanResult : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull security;
@property (strong, nonatomic) NSData * _Nonnull ssid;
@property (strong, nonatomic) NSData * _Nonnull bssid;
@property (strong, nonatomic) NSNumber * _Nonnull channel;
@property (strong, nonatomic) NSNumber * _Nonnull wiFiBand;
@property (strong, nonatomic) NSNumber * _Nonnull rssi;
- (instancetype)init;

@end

@interface MTRGeneralDiagnosticsClusterNetworkInterfaceType : NSObject
@property (strong, nonatomic) NSString * _Nonnull name;
@property (strong, nonatomic) NSNumber * _Nonnull isOperational;
@property (strong, nonatomic) NSNumber * _Nullable offPremiseServicesReachableIPv4;
@property (strong, nonatomic) NSNumber * _Nullable offPremiseServicesReachableIPv6;
@property (strong, nonatomic) NSData * _Nonnull hardwareAddress;
@property (strong, nonatomic) NSArray * _Nonnull iPv4Addresses;
@property (strong, nonatomic) NSArray * _Nonnull iPv6Addresses;
@property (strong, nonatomic) NSNumber * _Nonnull type;
- (instancetype)init;

@end

@interface MTRGeneralDiagnosticsClusterHardwareFaultChangeEvent : NSObject
@property (strong, nonatomic) NSArray * _Nonnull current;
@property (strong, nonatomic) NSArray * _Nonnull previous;
@end

@interface MTRGeneralDiagnosticsClusterRadioFaultChangeEvent : NSObject
@property (strong, nonatomic) NSArray * _Nonnull current;
@property (strong, nonatomic) NSArray * _Nonnull previous;
@end

@interface MTRGeneralDiagnosticsClusterNetworkFaultChangeEvent : NSObject
@property (strong, nonatomic) NSArray * _Nonnull current;
@property (strong, nonatomic) NSArray * _Nonnull previous;
@end

@interface MTRGeneralDiagnosticsClusterBootReasonEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull bootReason;
@end

@interface MTRSoftwareDiagnosticsClusterThreadMetrics : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull id;
@property (strong, nonatomic) NSString * _Nullable name;
@property (strong, nonatomic) NSNumber * _Nullable stackFreeCurrent;
@property (strong, nonatomic) NSNumber * _Nullable stackFreeMinimum;
@property (strong, nonatomic) NSNumber * _Nullable stackSize;
- (instancetype)init;

@end

@interface MTRSoftwareDiagnosticsClusterSoftwareFaultEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull id;
@property (strong, nonatomic) NSString * _Nullable name;
@property (strong, nonatomic) NSData * _Nullable faultRecording;
@end

@interface MTRThreadNetworkDiagnosticsClusterNeighborTable : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull extAddress;
@property (strong, nonatomic) NSNumber * _Nonnull age;
@property (strong, nonatomic) NSNumber * _Nonnull rloc16;
@property (strong, nonatomic) NSNumber * _Nonnull linkFrameCounter;
@property (strong, nonatomic) NSNumber * _Nonnull mleFrameCounter;
@property (strong, nonatomic) NSNumber * _Nonnull lqi;
@property (strong, nonatomic) NSNumber * _Nullable averageRssi;
@property (strong, nonatomic) NSNumber * _Nullable lastRssi;
@property (strong, nonatomic) NSNumber * _Nonnull frameErrorRate;
@property (strong, nonatomic) NSNumber * _Nonnull messageErrorRate;
@property (strong, nonatomic) NSNumber * _Nonnull rxOnWhenIdle;
@property (strong, nonatomic) NSNumber * _Nonnull fullThreadDevice;
@property (strong, nonatomic) NSNumber * _Nonnull fullNetworkData;
@property (strong, nonatomic) NSNumber * _Nonnull isChild;
- (instancetype)init;

@end

@interface MTRThreadNetworkDiagnosticsClusterOperationalDatasetComponents : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull activeTimestampPresent;
@property (strong, nonatomic) NSNumber * _Nonnull pendingTimestampPresent;
@property (strong, nonatomic) NSNumber * _Nonnull masterKeyPresent;
@property (strong, nonatomic) NSNumber * _Nonnull networkNamePresent;
@property (strong, nonatomic) NSNumber * _Nonnull extendedPanIdPresent;
@property (strong, nonatomic) NSNumber * _Nonnull meshLocalPrefixPresent;
@property (strong, nonatomic) NSNumber * _Nonnull delayPresent;
@property (strong, nonatomic) NSNumber * _Nonnull panIdPresent;
@property (strong, nonatomic) NSNumber * _Nonnull channelPresent;
@property (strong, nonatomic) NSNumber * _Nonnull pskcPresent;
@property (strong, nonatomic) NSNumber * _Nonnull securityPolicyPresent;
@property (strong, nonatomic) NSNumber * _Nonnull channelMaskPresent;
- (instancetype)init;

@end

@interface MTRThreadNetworkDiagnosticsClusterRouteTable : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull extAddress;
@property (strong, nonatomic) NSNumber * _Nonnull rloc16;
@property (strong, nonatomic) NSNumber * _Nonnull routerId;
@property (strong, nonatomic) NSNumber * _Nonnull nextHop;
@property (strong, nonatomic) NSNumber * _Nonnull pathCost;
@property (strong, nonatomic) NSNumber * _Nonnull lqiIn;
@property (strong, nonatomic) NSNumber * _Nonnull lqiOut;
@property (strong, nonatomic) NSNumber * _Nonnull age;
@property (strong, nonatomic) NSNumber * _Nonnull allocated;
@property (strong, nonatomic) NSNumber * _Nonnull linkEstablished;
- (instancetype)init;

@end

@interface MTRThreadNetworkDiagnosticsClusterSecurityPolicy : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull rotationTime;
@property (strong, nonatomic) NSNumber * _Nonnull flags;
- (instancetype)init;

@end

@interface MTRThreadNetworkDiagnosticsClusterConnectionStatusEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull connectionStatus;
@end

@interface MTRWiFiNetworkDiagnosticsClusterDisconnectionEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull reasonCode;
@end

@interface MTRWiFiNetworkDiagnosticsClusterAssociationFailureEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull associationFailure;
@property (strong, nonatomic) NSNumber * _Nonnull status;
@end

@interface MTRWiFiNetworkDiagnosticsClusterConnectionStatusEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull connectionStatus;
@end

@interface MTRBridgedDeviceBasicClusterStartUpEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull softwareVersion;
@end

@interface MTRBridgedDeviceBasicClusterShutDownEvent : NSObject
@end

@interface MTRBridgedDeviceBasicClusterLeaveEvent : NSObject
@end

@interface MTRBridgedDeviceBasicClusterReachableChangedEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull reachableNewValue;
@end

@interface MTRSwitchClusterSwitchLatchedEvent : NSObject
@property (strong, nonatomic, getter=getNewPosition) NSNumber * _Nonnull newPosition;
@end

@interface MTRSwitchClusterInitialPressEvent : NSObject
@property (strong, nonatomic, getter=getNewPosition) NSNumber * _Nonnull newPosition;
@end

@interface MTRSwitchClusterLongPressEvent : NSObject
@property (strong, nonatomic, getter=getNewPosition) NSNumber * _Nonnull newPosition;
@end

@interface MTRSwitchClusterShortReleaseEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull previousPosition;
@end

@interface MTRSwitchClusterLongReleaseEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull previousPosition;
@end

@interface MTRSwitchClusterMultiPressOngoingEvent : NSObject
@property (strong, nonatomic, getter=getNewPosition) NSNumber * _Nonnull newPosition;
@property (strong, nonatomic) NSNumber * _Nonnull currentNumberOfPressesCounted;
@end

@interface MTRSwitchClusterMultiPressCompleteEvent : NSObject
@property (strong, nonatomic, getter=getNewPosition) NSNumber * _Nonnull newPosition;
@property (strong, nonatomic) NSNumber * _Nonnull totalNumberOfPressesCounted;
@end

@interface MTROperationalCredentialsClusterFabricDescriptor : NSObject
@property (strong, nonatomic) NSData * _Nonnull rootPublicKey;
@property (strong, nonatomic) NSNumber * _Nonnull vendorId;
@property (strong, nonatomic) NSNumber * _Nonnull fabricId;
@property (strong, nonatomic) NSNumber * _Nonnull nodeId;
@property (strong, nonatomic) NSString * _Nonnull label;
@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
- (instancetype)init;

@end

@interface MTROperationalCredentialsClusterNOCStruct : NSObject
@property (strong, nonatomic) NSData * _Nonnull noc;
@property (strong, nonatomic) NSData * _Nullable icac;
@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
- (instancetype)init;

@end

@interface MTRGroupKeyManagementClusterGroupInfoMapStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull groupId;
@property (strong, nonatomic) NSArray * _Nonnull endpoints;
@property (strong, nonatomic) NSString * _Nullable groupName;
@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
- (instancetype)init;

@end

@interface MTRGroupKeyManagementClusterGroupKeyMapStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull groupId;
@property (strong, nonatomic) NSNumber * _Nonnull groupKeySetID;
@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
- (instancetype)init;

@end

@interface MTRGroupKeyManagementClusterGroupKeySetStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull groupKeySetID;
@property (strong, nonatomic) NSNumber * _Nonnull groupKeySecurityPolicy;
@property (strong, nonatomic) NSData * _Nullable epochKey0;
@property (strong, nonatomic) NSNumber * _Nullable epochStartTime0;
@property (strong, nonatomic) NSData * _Nullable epochKey1;
@property (strong, nonatomic) NSNumber * _Nullable epochStartTime1;
@property (strong, nonatomic) NSData * _Nullable epochKey2;
@property (strong, nonatomic) NSNumber * _Nullable epochStartTime2;
- (instancetype)init;

@end

@interface MTRFixedLabelClusterLabelStruct : NSObject
@property (strong, nonatomic) NSString * _Nonnull label;
@property (strong, nonatomic) NSString * _Nonnull value;
- (instancetype)init;

@end

@interface MTRUserLabelClusterLabelStruct : NSObject
@property (strong, nonatomic) NSString * _Nonnull label;
@property (strong, nonatomic) NSString * _Nonnull value;
- (instancetype)init;

@end

@interface MTRBooleanStateClusterStateChangeEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull stateValue;
@end

@interface MTRModeSelectClusterSemanticTag : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull mfgCode;
@property (strong, nonatomic) NSNumber * _Nonnull value;
- (instancetype)init;

@end

@interface MTRModeSelectClusterModeOptionStruct : NSObject
@property (strong, nonatomic) NSString * _Nonnull label;
@property (strong, nonatomic) NSNumber * _Nonnull mode;
@property (strong, nonatomic) NSArray * _Nonnull semanticTags;
- (instancetype)init;

@end

@interface MTRDoorLockClusterDlCredential : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull credentialType;
@property (strong, nonatomic) NSNumber * _Nonnull credentialIndex;
- (instancetype)init;

@end

@interface MTRDoorLockClusterDoorLockAlarmEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull alarmCode;
@end

@interface MTRDoorLockClusterDoorStateChangeEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull doorState;
@end

@interface MTRDoorLockClusterLockOperationEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull lockOperationType;
@property (strong, nonatomic) NSNumber * _Nonnull operationSource;
@property (strong, nonatomic) NSNumber * _Nullable userIndex;
@property (strong, nonatomic) NSNumber * _Nullable fabricIndex;
@property (strong, nonatomic) NSNumber * _Nullable sourceNode;
@property (strong, nonatomic) NSArray * _Nullable credentials;
@end

@interface MTRDoorLockClusterLockOperationErrorEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull lockOperationType;
@property (strong, nonatomic) NSNumber * _Nonnull operationSource;
@property (strong, nonatomic) NSNumber * _Nonnull operationError;
@property (strong, nonatomic) NSNumber * _Nullable userIndex;
@property (strong, nonatomic) NSNumber * _Nullable fabricIndex;
@property (strong, nonatomic) NSNumber * _Nullable sourceNode;
@property (strong, nonatomic) NSArray * _Nullable credentials;
@end

@interface MTRDoorLockClusterLockUserChangeEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull lockDataType;
@property (strong, nonatomic) NSNumber * _Nonnull dataOperationType;
@property (strong, nonatomic) NSNumber * _Nonnull operationSource;
@property (strong, nonatomic) NSNumber * _Nullable userIndex;
@property (strong, nonatomic) NSNumber * _Nullable fabricIndex;
@property (strong, nonatomic) NSNumber * _Nullable sourceNode;
@property (strong, nonatomic) NSNumber * _Nullable dataIndex;
@end

@interface MTRPumpConfigurationAndControlClusterSupplyVoltageLowEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterSupplyVoltageHighEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterPowerMissingPhaseEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterSystemPressureLowEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterSystemPressureHighEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterDryRunningEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterMotorTemperatureHighEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterPumpMotorFatalFailureEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterElectronicTemperatureHighEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterPumpBlockedEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterSensorFailureEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterElectronicNonFatalFailureEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterElectronicFatalFailureEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterGeneralFaultEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterLeakageEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterAirDetectionEvent : NSObject
@end

@interface MTRPumpConfigurationAndControlClusterTurbineOperationEvent : NSObject
@end

@interface MTRThermostatClusterThermostatScheduleTransition : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull transitionTime;
@property (strong, nonatomic) NSNumber * _Nullable heatSetpoint;
@property (strong, nonatomic) NSNumber * _Nullable coolSetpoint;
- (instancetype)init;

@end

@interface MTRChannelClusterChannelInfo : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull majorNumber;
@property (strong, nonatomic) NSNumber * _Nonnull minorNumber;
@property (strong, nonatomic) NSString * _Nullable name;
@property (strong, nonatomic) NSString * _Nullable callSign;
@property (strong, nonatomic) NSString * _Nullable affiliateCallSign;
- (instancetype)init;

@end

@interface MTRChannelClusterLineupInfo : NSObject
@property (strong, nonatomic) NSString * _Nonnull operatorName;
@property (strong, nonatomic) NSString * _Nullable lineupName;
@property (strong, nonatomic) NSString * _Nullable postalCode;
@property (strong, nonatomic) NSNumber * _Nonnull lineupInfoType;
- (instancetype)init;

@end

@interface MTRTargetNavigatorClusterTargetInfo : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull identifier;
@property (strong, nonatomic) NSString * _Nonnull name;
- (instancetype)init;

@end

@interface MTRMediaPlaybackClusterPlaybackPosition : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull updatedAt;
@property (strong, nonatomic) NSNumber * _Nullable position;
- (instancetype)init;

@end

@interface MTRMediaInputClusterInputInfo : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull index;
@property (strong, nonatomic) NSNumber * _Nonnull inputType;
@property (strong, nonatomic) NSString * _Nonnull name;
@property (strong, nonatomic) NSString * _Nonnull descriptionString;
- (instancetype)init;

@end

@interface MTRContentLauncherClusterDimension : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull width;
@property (strong, nonatomic) NSNumber * _Nonnull height;
@property (strong, nonatomic) NSNumber * _Nonnull metric;
- (instancetype)init;

@end

@interface MTRContentLauncherClusterAdditionalInfo : NSObject
@property (strong, nonatomic) NSString * _Nonnull name;
@property (strong, nonatomic) NSString * _Nonnull value;
- (instancetype)init;

@end

@interface MTRContentLauncherClusterParameter : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull type;
@property (strong, nonatomic) NSString * _Nonnull value;
@property (strong, nonatomic) NSArray * _Nullable externalIDList;
- (instancetype)init;

@end

@interface MTRContentLauncherClusterContentSearch : NSObject
@property (strong, nonatomic) NSArray * _Nonnull parameterList;
- (instancetype)init;

@end

@interface MTRContentLauncherClusterStyleInformation : NSObject
@property (strong, nonatomic) NSString * _Nullable imageUrl;
@property (strong, nonatomic) NSString * _Nullable color;
@property (strong, nonatomic) MTRContentLauncherClusterDimension * _Nullable size;
- (instancetype)init;

@end

@interface MTRContentLauncherClusterBrandingInformation : NSObject
@property (strong, nonatomic) NSString * _Nonnull providerName;
@property (strong, nonatomic) MTRContentLauncherClusterStyleInformation * _Nullable background;
@property (strong, nonatomic) MTRContentLauncherClusterStyleInformation * _Nullable logo;
@property (strong, nonatomic) MTRContentLauncherClusterStyleInformation * _Nullable progressBar;
@property (strong, nonatomic) MTRContentLauncherClusterStyleInformation * _Nullable splash;
@property (strong, nonatomic) MTRContentLauncherClusterStyleInformation * _Nullable waterMark;
- (instancetype)init;

@end

@interface MTRAudioOutputClusterOutputInfo : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull index;
@property (strong, nonatomic) NSNumber * _Nonnull outputType;
@property (strong, nonatomic) NSString * _Nonnull name;
- (instancetype)init;

@end

@interface MTRApplicationLauncherClusterApplication : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull catalogVendorId;
@property (strong, nonatomic) NSString * _Nonnull applicationId;
- (instancetype)init;

@end

@interface MTRApplicationLauncherClusterApplicationEP : NSObject
@property (strong, nonatomic) MTRApplicationLauncherClusterApplication * _Nonnull application;
@property (strong, nonatomic) NSNumber * _Nullable endpoint;
- (instancetype)init;

@end

@interface MTRApplicationBasicClusterApplicationBasicApplication : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull catalogVendorId;
@property (strong, nonatomic) NSString * _Nonnull applicationId;
- (instancetype)init;

@end

@interface MTRTestClusterClusterSimpleStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull a;
@property (strong, nonatomic) NSNumber * _Nonnull b;
@property (strong, nonatomic) NSNumber * _Nonnull c;
@property (strong, nonatomic) NSData * _Nonnull d;
@property (strong, nonatomic) NSString * _Nonnull e;
@property (strong, nonatomic) NSNumber * _Nonnull f;
@property (strong, nonatomic) NSNumber * _Nonnull g;
@property (strong, nonatomic) NSNumber * _Nonnull h;
- (instancetype)init;

@end

@interface MTRTestClusterClusterTestFabricScoped : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull fabricSensitiveInt8u;
@property (strong, nonatomic) NSNumber * _Nullable optionalFabricSensitiveInt8u;
@property (strong, nonatomic) NSNumber * _Nullable nullableFabricSensitiveInt8u;
@property (strong, nonatomic) NSNumber * _Nullable nullableOptionalFabricSensitiveInt8u;
@property (strong, nonatomic) NSString * _Nonnull fabricSensitiveCharString;
@property (strong, nonatomic) MTRTestClusterClusterSimpleStruct * _Nonnull fabricSensitiveStruct;
@property (strong, nonatomic) NSArray * _Nonnull fabricSensitiveInt8uList;
@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
- (instancetype)init;

@end

@interface MTRTestClusterClusterNullablesAndOptionalsStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nullable nullableInt;
@property (strong, nonatomic) NSNumber * _Nullable optionalInt;
@property (strong, nonatomic) NSNumber * _Nullable nullableOptionalInt;
@property (strong, nonatomic) NSString * _Nullable nullableString;
@property (strong, nonatomic) NSString * _Nullable optionalString;
@property (strong, nonatomic) NSString * _Nullable nullableOptionalString;
@property (strong, nonatomic) MTRTestClusterClusterSimpleStruct * _Nullable nullableStruct;
@property (strong, nonatomic) MTRTestClusterClusterSimpleStruct * _Nullable optionalStruct;
@property (strong, nonatomic) MTRTestClusterClusterSimpleStruct * _Nullable nullableOptionalStruct;
@property (strong, nonatomic) NSArray * _Nullable nullableList;
@property (strong, nonatomic) NSArray * _Nullable optionalList;
@property (strong, nonatomic) NSArray * _Nullable nullableOptionalList;
- (instancetype)init;

@end

@interface MTRTestClusterClusterNestedStruct : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull a;
@property (strong, nonatomic) NSNumber * _Nonnull b;
@property (strong, nonatomic) MTRTestClusterClusterSimpleStruct * _Nonnull c;
- (instancetype)init;

@end

@interface MTRTestClusterClusterNestedStructList : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull a;
@property (strong, nonatomic) NSNumber * _Nonnull b;
@property (strong, nonatomic) MTRTestClusterClusterSimpleStruct * _Nonnull c;
@property (strong, nonatomic) NSArray * _Nonnull d;
@property (strong, nonatomic) NSArray * _Nonnull e;
@property (strong, nonatomic) NSArray * _Nonnull f;
@property (strong, nonatomic) NSArray * _Nonnull g;
- (instancetype)init;

@end

@interface MTRTestClusterClusterDoubleNestedStructList : NSObject
@property (strong, nonatomic) NSArray * _Nonnull a;
- (instancetype)init;

@end

@interface MTRTestClusterClusterTestListStructOctet : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull member1;
@property (strong, nonatomic) NSData * _Nonnull member2;
- (instancetype)init;

@end

@interface MTRTestClusterClusterTestEventEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull arg1;
@property (strong, nonatomic) NSNumber * _Nonnull arg2;
@property (strong, nonatomic) NSNumber * _Nonnull arg3;
@property (strong, nonatomic) MTRTestClusterClusterSimpleStruct * _Nonnull arg4;
@property (strong, nonatomic) NSArray * _Nonnull arg5;
@property (strong, nonatomic) NSArray * _Nonnull arg6;
@end

@interface MTRTestClusterClusterTestFabricScopedEventEvent : NSObject
@property (strong, nonatomic) NSNumber * _Nonnull arg1;
@end

NS_ASSUME_NONNULL_END
